package org.jsola.hr.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.entity.BaseDeleteDO;
import org.jsola.core.entity.Key;

import java.util.Date;
import javax.persistence.Table;

/**
 * 转账批次(支付宝)
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Table(name = "hr_transfer_accounts_zfb_batch")
@Key(UUID = true)
public class TransferAccountsZfbBatchDO extends BaseDeleteDO<String> {

    private static final long serialVersionUID = 1L;

    /**
     * 商户的批次号 hr_transfer_accounts_batch表主键
     */
    private String batchId;
    /**
     * 转账标题
     */
    private String orderTitle;
    /**
     * 备注
     */
    private String remark;
    /**
     * 支付宝内部的批次id
     */
    private String batchTransId;
    /**
     * 超时时间(超过无法发起)
     */
    private Date timeExpire;
    /**
     * 支付确认页链接
     */
    private String payUrl;
    /**
     * 移动端支付链接
     */
    private String payUrlTwo;
    /**
     * 移动支付链接二维码图片地址
     */
    private String payUrlTwoImage;
    /**
     * 付款方支付宝uid
     */
    private String payerUserId;
    /**
     * 批次总笔数
     */
    private String totalCount;
    /**
     * 成功笔数
     */
    private String successCount;
    /**
     * 失败笔数
     */
    private String failCount;
    /**
     * 转账总金额
     */
    private String money;
    /**
     * 转账成功金额
     */
    private String successMoney;
    /**
     * 转账失败金额
     */
    private String failMoney;
    /**
     * 批次状态,INIT：批次已接收,WAIT_PAY：等待支付,DEALING：批次处理中,SUCCESS：批次处理全部成功,PART_SUCCESS：批次处理部分成功,FAIL：全部处理失败,DISUSE：批次单据废弃,INVALID：批次单据中明细全部无效
     */
    private String batchStatus;
    /**
     * 商户回传参数 示例：{"merchantBizType":"pay"}
     */
    private String passbackParams;
    /**
     * 关单操作者id，在特殊关单场景（例如用户通过接口下单，而去支付宝站内平台进行主动关单）下才有该返回值，并且不同场景值不同，具体值联系支付宝确认。
     */
    private String disuseOpUid;
    /**
     * 批次推进时的审批状态，只有当批次需要审批时才提供。WAIT_APPROVAL: 未审批 APPROVED: 已审批REJECTED: 已拒绝
     */
    private String approvalStatus;
    /**
     * 批次失败错误码. 大部分情况是没有的. 只有超时关闭或废弃、付款方账户状态不正常等才有，具体值联系支付宝确认 
     */
    private String errorCode;
    /**
     * 批次失败错误原因 批次超时过期作废
     */
    private String failReason;
    /**
     * 批次处理完成时间，精确到分钟
     */
    private String gmtFinish;
    /**
     * 批次支付完成时间，精确到分钟
     */
    private String gmtPayFinish;
    /**
     * 付款方身份标识
     */
    private String payerId;



}

